import 'package:flutter/material.dart';
import 'package:manual/components/common_dialog.dart';
import 'package:manual/components/loading_overlay.dart';
import 'package:manual/components/screen_modal.dart';
import 'package:manual/providers/theme_provider.dart';
import 'package:manual/utils/logger.dart';
import 'package:provider/provider.dart';

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: null, // 如果不需要 appBar，可以保留为 null
      body:Container(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center, 
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                CommonDialog.showInfoDialog(context, '这是一个信息提示框');
              },
              child: const Text('显示提示框'),
            ),
            // 例如在按钮点击时调用
            ElevatedButton(
              onPressed: () async {
                bool? confirmed = await CommonDialog.showConfirmDialog(context, '你确定要删除这个项目吗？');
                if (confirmed != null) {
                  if (confirmed) {
                    // 执行删除操作
                    Logger.info("确定", tag: "Dialog");
                  } else {
                    // 用户点击了取消按钮
                    Logger.info("取消", tag: "Dialog");
                  }
                } else {
                  // 用户关闭了对话框（例如点击背景或者按返回按钮）
                  Logger.info("对话框关闭", tag: "Dialog");
                }
              },
              child: const Text('显示确认框'),
            ),
            // 显示加载框
            ElevatedButton(
              onPressed: () async {
                // 显示加载框
                LoadingOverlay.show(context: context, iconSize: 48.0, padding: 24.0);
                // 模拟异步任务
                await Future.delayed(const Duration(seconds: 2));
                // 隐藏加载框
                LoadingOverlay.hide();
              },
              child: const Text('显示加载框'),
            ),
            ElevatedButton(
              onPressed: () async {
                // 调用自定义对话框
                bool ? confirmed = await CommonDialog.showCustomDialog(
                  context :context , 
                  title: '标题',
                  content:const Row(children: [ Icon(Icons.warning, color: Colors.red), Text('这是带图标的内容部分。')]), 
                  confirmText: '确定',
                  cancelText: '取消',
                  showCloseIcon:true,
                  onCancel: () =>Logger.info("自定义取消事件", tag: "CustomDialog") ,
                  onClose: () => Logger.info("自定义关闭事件", tag: "CustomDialog"),
                ); 
                if (confirmed != null) {
                  if (confirmed) {
                    // 执行删除操作
                    Logger.info("确定", tag: "CustomDialog");
                  } else {
                    // 用户点击了取消按钮
                    Logger.info("取消", tag: "CustomDialog");
                  }
                } else {
                  // 用户关闭了对话框（例如点击背景或者按返回按钮）
                  Logger.info("对话框关闭", tag: "CustomDialog");
                }
              },
              child: const Text('显示自定义弹框'),
            ),
            ElevatedButton(
              onPressed: () async {
                bool? modalRes = await ScreenModal.showHalfScreenModal(
                  context,
                  children: [
                    const Padding(
                      padding: EdgeInsets.only(top: 16 , left: 16 , right: 0 , bottom: 16),
                      child: Text('Hello, this is a half-screen modal!',style: TextStyle(fontSize: 18.0)),
                    ),
                    const Divider(),
                    const ListTile(
                      leading: Icon(Icons.info),
                      title: Text('Item 1'),
                    ),
                    const ListTile(
                      leading: Icon(Icons.info),
                      title: Text('Item 2'),
                    ),
                  ],
                );
                if (modalRes != null) {
                  if (modalRes) {
                    // 执行删除操作
                    Logger.info("确定", tag: "ScreenModal");
                  } else {
                    // 用户点击了取消按钮
                    Logger.info("取消", tag: "ScreenModal");
                  }
                } else {
                  // 用户关闭了对话框（例如点击背景或者按返回按钮）
                  Logger.info("对话框关闭", tag: "ScreenModal");
                }
              },
              child: const Text('显示半屏模态框'),
            ),
            ElevatedButton(
              onPressed: () async {
                final provider = context.read<ThemeProvider>();
                // 直接根据当前状态切换
                if (provider.themeMode == ThemeMode.light) {
                  provider.switchTheme("dark");
                } else {
                  provider.switchTheme("light");
                }
              },
              child: const Text('切换主题'),
            ),
           
          ],
        )
      ),
    );
  }
}
